home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / sbprolog / amiga / builtin2.zoo / system.c < prev    next >
C/C++ Source or Header  |  1988-08-15  |  756b  |  38 lines

  1. /*
  2.  * Aztec C version 3.6 does not support system(), but here is a substitute.
  3.  * This is a bonafide untested-original-it-just-compiles routine.
  4.  * Manx will probably implement system() before we fix this version...
  5.  */
  6. #include <stdio.h>
  7. #include <ctype.h>
  8.  
  9. #define KLUDGE1 256
  10. #define KLUDGE2 64
  11. int system(s)
  12. char *s;
  13. {
  14.    char text[KLUDGE1], *cp=text;
  15.    char **av[KLUDGE2];
  16.    int ac = 0;
  17.    int l  = strlen(s);
  18.  
  19.    if (l >= KLUDGE1)
  20.       return -1;
  21.    strcpy(text,s);
  22.    av[ac++] = text;
  23.    while(*cp && ac<KLUDGE2-1) {
  24.       if (isspace(*cp)) {
  25.          *cp++ = '\0';
  26.      while(isspace(*cp))
  27.         cp++;
  28.          if (*cp)
  29.         av[ac++] = cp;
  30.          }
  31.       else {
  32.          cp++;
  33.          }
  34.       }
  35.     av[ac] = NULL;
  36.     return fexecv(av[0], av);
  37. }
  38.